This invention relates to the mechanisms and methods that take as their input raw and unstructured data and manipulates it to identify patterns within it and to organize and structure it in a more useful way for further processing or output.
The evolution of computers and especially the integration of computers with other machines has generated benefits to society in many areas, including manufacturing, transportation, communications, consumer products, and medicine.
Unfortunately there are some bottlenecks in this evolutionary process. For example, the effectiveness of programs is limited by the data that can be input to them and it is often necessary for specially-trained people to enter the data carefully via keyboard or mouse. This severely limits the potential of many computer applications by artificially limiting the population able to use the computer.
Since the beginning of the computer industry, researchers have explored the possibility of creating computers and computer programs that can receive their input data in a more natural way. By teaching computers to perceive the environment through sight, sound, and touch, some researchers have achieved promising results. Unfortunately, very few useful products have been generated from this research, despite considerable effort and fanfare.
This patent discloses an invention that addresses problems that have existed in the field of recognition for some time. There are many important issues:
The recognition system must allow the developer to decide in any situation the important differentiating features of two items and weigh these features appropriately, item by item. This is called bias. PA1 Many recognition problems involve multiple items in many patterns and sub-patterns (for example Chinese characters). Often subpatterns recur as part of many different objects. A recognition system should represent both this complex structure and the recurring components, using them to advantage in the development process as well as in the recognition process. PA1 Recognition problems have traditionally been solved for one application problem at a time. The tendency in these cases has been to intermix application- or problem-specific steps with core recognition steps. By failing to maintain a barrier between the recognition tool and the application, developers have virtually always created recognition systems that can be applied to only one problem instance. PA1 Recognition is a common problem across many domains. If the common part of the problem could be treated such that solutions could be used for many different problems, the key benefit would be that advancement or improvement in the core technology will immediately advance or improve all of its applications. Also, re-using the core technology eliminates the invention and re-invention of this aspect of the solution, so that resources can be applied to improving the process or applying it in new ways. PA1 Recognition problems and our knowledge about them are always changing and evolving. New solutions must be quickly created and existing solutions must continually be changed and improved. The difficulty is that the problem is never fixed; it is a moving target. Therefore, solving the problem requires a dynamic system that can be modified and appended as the requirements change. Many recognition solutions have reached a premature dead-end when their technology proved too rigid to evolve. PA1 If two tools are functionally equivalent, but one requires the developer to consider details that are not directly related to the problem, while the other tool elucidates the important issues of the problem while hiding the details, then the latter tool will be the most useful. PA1 Recognition in its purest sense is a matter of matching the items in one pattern to the items in another. Simply put, objects to be recognized have attributes, and there are relationships between the objects. Any recognition system should structure descriptions of each object that makes explicit the individual items to be recognized, their attributes, and the relationships between them. PA1 Recognition is an inherently computationally-intensive problem. At each step, the complexity of the recognition problem must be considered and dealt with in order to yield a time- and memory-efficient recognizer. PA1 It is an object of this invention to provide a recognition system that can have variable bias, stronger in complex ambiguous cases, weaker in less ambiguous cases. PA1 It is another object of the invention to provide a tool that allows developers to create new recognizers and modify existing ones with great power and relative ease. PA1 It is another object of the invention to provide a generic tool that can be used to create recognizers for many different applications. PA1 It is another object of this invention to provide a recognition system that clearly modularizes the generic recognition system from the application-specific information. PA1 It is another object of this invention to provide a system that allows the developer of a recognizer to focus on his or her specific recognition issues while hiding the details of the implementation. PA1 It is another object of this invention to provide a recognition system that represents and makes extensive use of a hierarchical, object-centered representation. PA1 It is another object of this invention to provide a recognition system that represents and recognizes complex structures in an object and takes advantage of frequently-occurring patterns in this structure. PA1 It is another object of this invention to provide a system for creating computationally-efficient recognizers.
Previous systems have focused on one or another of these issues, but none represents a solution in all areas.